package com.mi.service.impl;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.dbutils.handlers.BeanListHandler;

import com.mi.bean.AdminInfoBean;
import com.mi.bean.CustomersBean;
import com.mi.db.DBProvider;
import com.mi.service.ICustomerUpdateService;
import com.mi.service.IUpdateService;
import com.mi.utils.MyUtils;

public class CustomerUpdateServiceImpl implements ICustomerUpdateService {

	/**
	 * 修改用户信息
	 * 
	 * @param customerB 要修改的实体类
	 * @return 修改的结果
	 */
	@Override
	public int updateUserInfo(CustomersBean customerB, String customerId) {
		// 默认返回值是0，表示修改失败
		int i = 0;
		/*System.out.println("service-要修改的用户信息："+customerB.toString());*/
		
		/*System.out.println("service-传入的用户id："+ customerId);*/
		// 组织查询语句
		StringBuilder sbQuerySql = new StringBuilder("update customers set ");

		// 查询条件的参数集合
		List<Object> lstParams = new ArrayList<>();
		if (customerB != null) {
			// 根据查询条件动态拼写查询条件

			// 用户ID
			String strId = customerId;
			if (strId != null && !strId.equals("")) {
				// 添加用户名的修改条件
				sbQuerySql.append(" customer_id = ? ");
				// 保存查询参数
				lstParams.add(strId);
			}

			// 修改用户名
			String strName = customerB.getCustomer_name();
			if (strName != null && !strName.equals("")) {
				// 添加用户名的修改条件
				sbQuerySql.append(", customer_name = ? ");
				// 保存查询参数
				lstParams.add(strName);
			}

			/// 修改用户电话
			String strTel = customerB.getCustomer_tel();
			if (strTel != null && !strTel.equals("")) {
				// 添加用户名的修改条件
				sbQuerySql.append(", customer_tel = ? ");
				// 保存查询参数
				lstParams.add(strTel);
			}
			
			/// 修改用户邮箱
			String strEmail = customerB.getCustomer_email();
			if (strEmail != null && !strEmail.equals("")) {
				// 添加用户名的修改条件
				sbQuerySql.append(", customer_email = ? ");
				// 保存查询参数
				lstParams.add(strEmail);
			}
			
			/// 修改用户密码
			String strPsw = customerB.getCustomer_psw();
			if (strPsw != null && !strPsw.equals("")) {
				// 添加用户名的修改条件
				sbQuerySql.append(", customer_psw = ? ");
				// 保存查询参数
				lstParams.add(strPsw);
			}
			
			/// 修改用户头像
			String strImg = customerB.getCustomer_img();
			if (strImg != null && !strImg.equals("")) {
				// 添加用户名的修改条件
				sbQuerySql.append(", customer_img = ? ");
				// 保存查询参数
				lstParams.add(strImg);
			}
			
			sbQuerySql.append("where customer_id = ? ");
			lstParams.add(strId);
		}

		/*System.out.println("service-修改用户信息-查询参数"+lstParams.toString());*/
		System.out.println("UpdateService-查询语句"+sbQuerySql);
		// 调用db层进行数据库查询操作
		i = MyUtils.getInstance(DBProvider.class).update(sbQuerySql.toString(), lstParams.toArray());

		return i;
	}

}
